package cn.funeralobjects.ams.repository;

import cn.funeralobjects.ams.entity.EProductApi;
import cn.funeralobjects.common.repository.NameRepository;

import java.util.Optional;

/**
 * Repository of EProductApi
 *
 * @author FuneralObjects
 * Create date: 2020/5/28 5:01 PM
 */
public interface EProductApiRepository extends BaseAmsRepository<EProductApi, Integer>, NameRepository<EProductApi, Integer> {

    /**
     * 判断是否存在实体
     *
     * @param productId 产品id
     * @param action    访问标识
     * @param version   版本
     * @return true - 存在
     */
    boolean existsAllByProduct_IdAndActionAndVersion(Integer productId, String action, String version);

    /**
     * 判断是否存在实体
     *
     * @param productId 产品id
     * @param action    访问标识
     * @param version   版本
     * @param id        排除id
     * @return true - 存在
     */
    boolean existsAllByProduct_IdAndActionAndVersionAndIdNot(Integer productId, String action, String version, Integer id);

    /**
     * 查询实体
     *
     * @param productId 产品id
     * @param action    访问标识
     * @param version   版本号
     * @return 实体数据
     */
    Optional<EProductApi> findFirstByProduct_IdAndActionAndVersion(Integer productId, String action, String version);
}
